#ifndef TEMPSHAPE_H
#define TEMPSHAPE_H
#include "../shape/shape.h"
#include "flow.h"
#include "../scene/customgraphicsscene.h"

/**
 * @class TempShape
 * Представляет собой фигуру, появляющуюся на концах висячих связей
 * и способную переключать свою связь на ту фигуру, на которую этот
 * элемент был брошен (drag-and-drop), если соединение корректно.
 */
class TempShape : public Shape
{
public:
	TempShape (const QPointF &pt);
	TempShape (const Shape *proto);
	virtual TempShape *clone() const;
	virtual QRectF boundingRect() const;
	Flow *findFlow();	///< Найти связь, которая присоединена к этой фигуре
protected:
	virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
	virtual QPainterPath shape() const;
	virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
private:
	Shape *findDestinationShape (CustomGraphicsScene *scene);	///< Найти фигуру, на которую бросили TempShape
};


#endif // TEMPSHAPE_H
